EXPT-Baustein
Kurz-Information
Name |
|
→POE-Typ |
|
Kategorie |
Standard (safe), Numeric, Baustein mit interner Fehlerdiagnose |
Konform zur →IEC-Norm |
mehr als in IEC-Norm vorgesehen möglich; und
derzeit eingeschränkt |
Grafische Schnittstelle |
|
Verfügbar ab |
Version 1.0.0 (für Neuron Power Engineer) – Anfangsvariante Version 2.0.16 (für Bibliothek Version 3.1.0 (für Bibliothek Version 3.8.0 (für Bibliothek |
Funktionalität
Die mathematische Funktion Potenzierung wird aufgerufen: Der Baustein liefert das Ergebnis von IN1IN2
(Der Wert, der an IN1
anliegt, wird mit Wert potenziert, der an IN2
anliegt).
Verhalten für die Berechnung 0**0 Der Baustein |
Beachten Sie zusätzlich:
-
Keine Prüfung von ungültigen Beschaltungen
Bei einigen Bausteinen werden ungültige Beschaltungen von Neuron Power Engineer nicht geprüft. Geben Sie deshalb Code in Ihrer Anwendung ein (z.B.
IF
-Anweisungen im ST-Code), mit denen ungültige Beschaltungen erkannt werden. Siehe "Beispiele für ungültige Beschaltungen".Lesen Sie unter "Standardbausteine für die Anwendung" nach, welche Auswirkungen eine ungültige Beschaltung haben könnte.
Mit Hilfe des
IS_VALID
-Bausteins in Ihrer Anwendung können Sie die Gültigkeit vonANY_REAL
-Werten prüfen.Einschränkung
Für die Plattform "vxWorks x86" liefert der
EXPT
-Baustein bei einer ungültigen Beschaltung desEXPT
-Bausteins mitANY_REAL
-Werten nicht "Not-a-Number" (NaN
). Siehe auch "EXPT-Baustein liefert unter bestimmtem Zielsystem und bei ungültiger Beschaltung einen falschen Wert".
-
Für
ANY_INT
-Werte (siehe unter "Beispiel für Verwendung im ST-Editor"):ANY_INT ist...
USINT
,UINT
,UDINT
,ULINT
,SINT
,INT
,DINT
oderLINT
(entspricht dem →allgemeinen DatentypANY_INT
)-
Falls der Ergebniswert die Obergrenze des Datentyps übersteigt, liefert der Baustein die Obergrenze des Datentyps. Der Ausgang
ENO
wird hier auf den WertFALSE
gesetzt. -
Falls der Ergebniswert unter der Untergrenze des Datentyps liegt, liefert der Baustein die Untergrenze des Datentyps. Auch hier wird der Ausgang
ENO
auf den WertFALSE
gesetzt.
-
Eingänge, Ergebniswert
|
Bezeichner |
Beschreibung |
|
---|---|---|---|
Eingänge: |
|
|
1. Wert |
|
|
2. Wert |
|
Ergebniswert: |
– |
|
|
Der Eingang EN
und der Ausgang ENO
sind für den →Aufruf des Bausteins verfügbar. Siehe "Ausführungssteuerung: EN, ENO" für Informationen zum Eingang EN
und zum Ausgang ENO
.
Informieren Sie sich unter:
-
"Bausteine für sichere Logik", ob dieser Baustein für das Entwickeln von sicherheitsrelevanten Anwendungen unterstützt wird.
-
"Kennzeichnung von sicherer Logik im FBS-Editor", welche Auswirkung die Verwendung des Bausteins als Baustein für sichere Logik hat.
Interne Fehlerdiagnose für Baustein
Der Baustein prüft den Ergebniswert. In den folgenden Fällen wird der Ausgang ENO
des Bausteins auf den Wert FALSE
(oder eine Entsprechung) zurückgesetzt:
-
Der Ergebniswert übersteigt die Obergrenze des Datentyps. (In diesem Fall liefert der Baustein außerdem die Obergrenze des Datentyps.)
-
Der Ergebniswert unterschreitet die Untergrenze des Datentyps. (In diesem Fall liefert der Baustein außerdem die Untergrenze des Datentyps.)
Beispiel für Verwendung im ST-Editor
Die berechneten Werte werden mit Hilfe des Assert
-Bausteins ausgewertet.
|
Bei der Erstellung Ihrer Anwendung im ST-Editor erstellen Sie den Aufruf eines Bausteins, indem Sie den laut Syntax erforderlichen Text eintippen oder die Inhaltshilfe verwenden.
Beispiele für ungültige Beschaltungen
Während der Berechnung mit Hilfe von EXPT
können ungültige Beschaltung in folgenden Fällen entstehen:
-
aufgrund eines →Überlaufs oder →Unterlaufs
Beispiele für ungültige Beschaltungen
FUNCTION_BLOCK ExampleExptInvalid1
VAR
resultSint1, resultSint2 : SINT;
CheckENO1, CheckENO2 : BOOL;
END_VAR
resultSint1 := EXPT(IN1 := SINT#10, IN2 := SINT#3, ENO=>CheckENO1); (* The upper limit for SINT is '127'. '10**3' causes an overflow as '10**3' would evaluate to '1000'. *)
Assert(resultSint1 = 127);
Assert(CheckENO1 = FALSE);
resultSint2 := EXPT(IN1 := SINT#-10, IN2 := SINT#3, ENO=>CheckENO2); (* The lower limit for SINT is '-128'. '-10**3' causes a negative overflow as '-10**3' would evaluate to '-1000'. *)
Assert(resultSint2 = -128);
Assert(CheckENO2 = FALSE);
END_FUNCTION_BLOCK
-
falls
IN1
<0
undIN2
keine ganzzahlige Zahl (→Integer) istBeispiel für ungültige Beschaltungen
FUNCTION_BLOCK ExampleExptInvalid2
VAR
resultRealInvalid : REAL;
END_VAR
resultRealInvalid:= EXPT(IN1 := REAL#-25.0, IN2 := REAL#0.5);
(* For the built-in PLC, 'resultRealInvalid' evaluates to 'NaN' in the 'Values of Variables* view. *)
(* But this is not the case for vxWorks x86. *)
ASSERT(NOT IS_VALID(resultRealInvalid));
END_FUNCTION_BLOCK
Siehe auch "EXPT-Baustein liefert unter bestimmtem Zielsystem und bei ungültiger Beschaltung einen falschen Wert".